package com.lebang.medicalInquiry.mapper;

import com.lebang.medicalInquiry.model.po.Physician;
import org.apache.ibatis.annotations.Mapper;
import com.lebang.medicalInquiry.model.vo.PhysicianInfoVo;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.lebang.medicalInquiry.model.vo.admin.PhysicianListVo;
import com.lebang.medicalInquiry.model.vo.admin.PhysicianOrganizationReVo;

@Mapper
public interface PhysicianMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Physician record);

    int insertSelective(Physician record);

    Physician selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Physician record);

    int updateByPrimaryKey(Physician record);

    List<PhysicianInfoVo> getPhysicianList(@Param("name") String name, @Param("uuid") String uuid, @Param("classifyId") Integer classifyId, @Param("organizationId") Integer organizationId, @Param("page") int page, @Param("limit") Integer limit);

    List<Physician> getAllEnable();

    List<PhysicianInfoVo> getAttPhysicianList(@Param("name") String name, @Param("uuid") String uuid, @Param("classifyId") Integer classifyId, @Param("page") int page, @Param("limit") Integer limit);

    Physician getByProjectId(String projectId);

    Physician getByLiveRoomId(String liveRoomId);

    List<String> getAllPosition();

    List<Physician> getHeadImg(@Param("ids") List<Integer> ids);

    Integer countByCondition(@Param("name") String name, @Param("classifyId") Integer classifyId, @Param("state") Integer state, @Param("organizationId") Integer organizationId, @Param("organizationOperatorUuid") String organizationOperatorUuid);

    List<PhysicianInfoVo> getListByOrganizationId(String uuid);

    List<PhysicianOrganizationReVo> getOrganizationPhysicianList();

    List<PhysicianListVo> listByCondition(@Param("name") String name, @Param("classifyId") Integer classifyId, @Param("state") Integer state, @Param("organizationId") Integer organizationId, @Param("organizationOperatorUuid") String organizationOperatorUuid, @Param("page") int page, @Param("limit") Integer limit);

    void closeLive(Integer id);

    PhysicianInfoVo getInfoById(@Param("id") Integer physicianId);

    List<Physician> getAll();

}